package com.ssy.lingxi.order.model.bo;

import com.ssy.lingxi.order.model.dto.OrderGiveCouponDTO;
import com.ssy.lingxi.order.model.vo.basic.request.MobileOrderProductVO;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 新增订单时，校验订单商品信息结果
 * @author 万宁
 * @version 2.0.0
 * @date 2022-02-09
 */
public class BuyerOrderCheckBO implements Serializable {
    private static final long serialVersionUID = 688645304635218328L;

    public BuyerOrderCheckBO() {
    }

    public BuyerOrderCheckBO(Map<Long, BigDecimal> couponMap, Map<Long, BigDecimal> platformCouponMap,Map<Long, BigDecimal> deductionMap, Map<Long, BigDecimal> taxesMap, List<MobileOrderProductVO> freightProductList,List<OrderGiveCouponDTO> orderGiveCouponDTOList) {
        this.couponMap = couponMap;
        this.platformCouponMap = platformCouponMap;
        this.deductionMap = deductionMap;
        this.taxesMap = taxesMap;
        this.freightProductList = freightProductList;
        this.orderGiveCouponDTOList = orderGiveCouponDTOList;
    }

    /**
     * 每个商品SkuId使用优惠券后减少的金额，用于在创建订单（拆单）时重新统计订单的优惠抵扣总额
     */
    private Map<Long, BigDecimal> couponMap;

    /**
     * 记录每个商品SkuId使用“平台优惠券”后减少的金额，用于售后服务退款时返还平台优惠券
     */
    private Map<Long, BigDecimal> platformCouponMap;

    /**
     * 每个商品SkuId使用积分抵扣后减少的金额，用于在创建订单（拆单）时重新统计订单的积分抵扣总额
     */
    private Map<Long, BigDecimal> deductionMap;

    /**
     * 跨境电商商品SkuId税率后减少的金额，用于在创建订单（拆单）时重新统计订单的税率
     */
    private Map<Long, BigDecimal> taxesMap;

    private List<MobileOrderProductVO> freightProductList;

    private List<OrderGiveCouponDTO> orderGiveCouponDTOList;

    public Map<Long, BigDecimal> getCouponMap() {
        return couponMap;
    }

    public void setCouponMap(Map<Long, BigDecimal> couponMap) {
        this.couponMap = couponMap;
    }

    public Map<Long, BigDecimal> getPlatformCouponMap() {
        return platformCouponMap;
    }

    public void setPlatformCouponMap(Map<Long, BigDecimal> platformCouponMap) {
        this.platformCouponMap = platformCouponMap;
    }

    public Map<Long, BigDecimal> getDeductionMap() {
        return deductionMap;
    }

    public void setDeductionMap(Map<Long, BigDecimal> deductionMap) {
        this.deductionMap = deductionMap;
    }

    public Map<Long, BigDecimal> getTaxesMap() {
        return taxesMap;
    }

    public void setTaxesMap(Map<Long, BigDecimal> taxesMap) {
        this.taxesMap = taxesMap;
    }

    public List<MobileOrderProductVO> getFreightProductList() {
        return freightProductList;
    }

    public void setFreightProductList(List<MobileOrderProductVO> freightProductList) {
        this.freightProductList = freightProductList;
    }

    public List<OrderGiveCouponDTO> getOrderGiveCouponDTOList() {
        return orderGiveCouponDTOList;
    }

    public void setCollect(List<OrderGiveCouponDTO> orderGiveCouponDTOList) {
        this.orderGiveCouponDTOList = orderGiveCouponDTOList;
    }
}
